import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule, ReactiveFormsModule } from '@angular/forms';

import { NzIconModule } from 'ng-zorro-antd/icon';
import { AlertFill } from '@ant-design/icons-angular/icons';
import { IconDefinition } from '@ant-design/icons-angular';
import { DemoNgZorroAntdModule } from '../../NG-ZORRO/ng-zorro-antd.module';
import { CustomerMerchantComponent } from './customer-merchant/customer-merchant.component';
import { CustomerRoutingModule } from './customer-routing.module';
import { CustomerBrowseComponent } from './customer-browse/customer-browse.component';
import { CustomerCollectionComponent } from './customer-collection/customer-collection.component';
import { CustomerSearchComponent } from './customer-search/customer-search.component';
import { CustomerNewsComponent } from './customer-news/customer-news.component';
import { CustomerMembershipRightsComponent } from './customer-membership-rights/customer-membership-rights.component';
import { CustomerMembershipLevelComponent } from './customer-membership-level/customer-membership-level.component';
import { CustomerDataComponent } from './customer-data/customer-data.component';
import { CustomerNewsSendComponent } from './customer-news-send/customer-news-send.component';
import { CustomerMembershipRightsSaveComponent } from './customer-membership-rights-save/customer-membership-rights-save.component';
import { CustomerBasicsComponent } from './customer-basics/customer-basics.component';
import { CustomerShopComponent } from './customer-shop/customer-shop.component';
import { CustomerIntegralComponent } from './customer-integral/customer-integral.component';
import { CustomerGrowthComponent } from './customer-growth/customer-growth.component';
import { CustomerCustomerBehaviorComponent } from './customer-customer-behavior/customer-customer-behavior.component';
import { CustomerUserCouponComponent } from './customer-user-coupon/customer-user-coupon.component';
import { CustomerUserTagsComponent } from './customer-user-tags/customer-user-tags.component';
import { CustomerWithdrawComponent } from './customer-withdraw/customer-withdraw.component';
import { CustomerTabsComponent } from './customer-tabs/customer-tabs.component';
import { CustomerStoreComponent } from './customer-store/customer-store.component';
import { CustomerAccountStatementComponent } from './customer-account-statement/customer-account-statement.component';

// 封装组件module
import { sharedModule } from '../../sharedModule/shared.module';
import {
    growupStatusPipe,
    scoreStatusPipe,
    ExamineStatePipe,
    WithdrawalWayPipe,
    RevenueExpenditurePipe,
    ProfitExamineStatusPipe,
    ProfitArrivalStatusPipe,
    IdoAuditStatusPipe,
    MachineScoreTypesPipe
} from './status.pipe';
import { CustomerMemberGrowupComponent } from './customer-member-growup/customer-member-growup.component';
import { CustomerMemberIntegralComponent } from './customer-member-integral/customer-member-integral.component';
import { CustomerIdolRecordComponent } from './customer-idol-record/customer-idol-record.component';
import { CustomerFlowingWaterComponent } from './customer-flowing-water/customer-flowing-water.component';
import { CustomerJdcardComponent } from './customer-jdcard/customer-jdcard.component';
import { CustomerIdolRechargeComponent } from './customer-idol-recharge/customer-idol-recharge.component';
import { CustomerIdolStatisticsComponent } from './customer-idol-statistics/customer-idol-statistics.component';
import { CustomerIdolWaterComponent } from './customer-idol-water/customer-idol-water.component';
import { CustomerMachineTestScoreComponent } from './customer-machine-test-score/customer-machine-test-score.component';
import { CustomerMachineUserScoreComponent } from './customer-machine-user-score/customer-machine-user-score.component';
import { CustomerLabelComponent } from './customer-label/customer-label.component';
import { ArticleCategoryComponent } from './business-strategy/article-category/article-category.component';
import { ArticleManageComponent } from './business-strategy/article-manage/article-manage.component';
import { ArticleAddComponent } from './business-strategy/article-add/article-add.component';
import {EditorModule} from '@tinymce/tinymce-angular';
import { CustomerCashFlowComponent } from './customer-cash-flow/customer-cash-flow.component';
import { CustomerUsercashFlowComponent } from './customer-usercash-flow/customer-usercash-flow.component';

const icons: IconDefinition[] = [AlertFill];

const pipeArrays = [
    growupStatusPipe,
    scoreStatusPipe,
    ExamineStatePipe,
    WithdrawalWayPipe,
    RevenueExpenditurePipe,
    ProfitExamineStatusPipe,
    ProfitArrivalStatusPipe,
    IdoAuditStatusPipe,
    MachineScoreTypesPipe
];

@NgModule({
    declarations: [
        ...pipeArrays,
        CustomerMerchantComponent,
        CustomerBrowseComponent,
        CustomerCollectionComponent,
        CustomerSearchComponent,
        CustomerNewsComponent,
        CustomerMembershipRightsComponent,
        CustomerMembershipLevelComponent,
        CustomerDataComponent,
        CustomerNewsSendComponent,
        CustomerMembershipRightsSaveComponent,
        CustomerBasicsComponent,
        CustomerShopComponent,
        CustomerIntegralComponent,
        CustomerGrowthComponent,
        CustomerCustomerBehaviorComponent,
        CustomerUserCouponComponent,
        CustomerUserTagsComponent,
        CustomerWithdrawComponent,
        CustomerTabsComponent,
        CustomerStoreComponent,
        CustomerAccountStatementComponent,
        CustomerMemberGrowupComponent,
        CustomerMemberIntegralComponent,
        CustomerIdolRecordComponent,
        CustomerFlowingWaterComponent,
        CustomerJdcardComponent,
        CustomerIdolRechargeComponent,
        CustomerIdolStatisticsComponent,
        CustomerIdolWaterComponent,
        CustomerMachineTestScoreComponent,
        CustomerMachineUserScoreComponent,
        CustomerLabelComponent,
        ArticleCategoryComponent,
        ArticleManageComponent,
        ArticleAddComponent,
        CustomerCashFlowComponent,
        CustomerUsercashFlowComponent
    ],
  imports: [
    sharedModule,
    DemoNgZorroAntdModule,
    NzIconModule.forRoot(icons),
    ReactiveFormsModule,
    FormsModule,
    CommonModule,
    CustomerRoutingModule,
    EditorModule,
  ]
})
export class CustomerModule { }
